package com.change.copy.vo;

import lombok.Data;

import java.util.List;

/**
 * 科大星火的api 出参
 */
@Data
public class SparkApiVo {
    /**
     * 错误码：0表示成功，非0表示错误
     */
    private Integer code;
    /**
     * 错误码的描述信息
     */
    private String message;
    /**
     * 本次请求的唯一id
     */
    private String sid;
    /**
     * 本次请求的唯一id
     */
    private List<Choices> choices;
    /**
     * 本次请求消耗的token数量
     */
    private Usage usage;


    /**
     * 大模型结果的数组
     */
    @Data
    public static class Choices {
        /**
         * 大模型结果
         */
        private Message message;
        /**
         * 大模型的结果序号，在多候选中使用
         */
        private Integer index;
    }

    /**
     * 大模型结果
     */
    @Data
    public static class Message {
        /**
         * 大模型的角色
         */
        private String role;
        /**
         * 大模型输出的内容
         */
        private String content;
    }


    /**
     * 本次请求消耗的token数量
     */
    @Data
    public static class Usage {
        /**
         * 用户输入信息，消耗的token数量
         */
        private Integer prompt_tokens;
        /**
         * 大模型输出信息，消耗的token数量
         */
        private Integer completion_tokens;
        /**
         * 用户输入+大模型输出，总的token数量
         */
        private Integer total_tokens;
    }

    public String getContent() {
        return this.choices.get(0).message.content;
    }
}
